/*
 * Pilha.java
 * 
 * Created on 5/Jan/2008, 20:39:13
 * 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Automato;

import Estado.StateArrow;
import java.util.ArrayList;

/**
 *
 * @author Pedro
 * 
 * É provavel que o codigo desta classe vá para o Automato, já que se torna 
 * um pouco inutil ter uma classe só para manipular um array com algumas regras.
 */
public class Pilha {

    ArrayList<Integer> actualKeywordsBag = new ArrayList<Integer>();
    
    public boolean ContainsFrase(int fr){
   if(actualKeywordsBag.contains(fr)) return true;
    return false;
    }
    
    public void AddToBag(ArrayList<StateArrow> caminhos,ArrayList<Integer> inicios){
   
    /*
     Para cada fraseID que tento meter na pila, SE esse id ainda não estiver lá 
     E esse id estiver no array dos inicios desse estado, então insiro-o.
     
     Isto serve para evitar que fique á procura de uma frase cujo o estado em que
     entrei é um estado do meio da frase e não do inicio.
     possivel Performance Tip: meter o cm.get(i) numa variavel antes do if.
     */
    int tam = caminhos.size();
    for(int i=0; i<tam;i++)
       if(!(actualKeywordsBag.contains(caminhos.get(i))) && actualKeywordsBag.contains(inicios.contains(caminhos.get(i))))
        actualKeywordsBag.add(caminhos.get(i).getFrase(i));
    }
    
    public void RemoveFromBag(int fr)
{
        actualKeywordsBag.remove(fr);
        
    }
}
